package br.ufpb.di.ppgi.negocio.modelo.usuario;

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;



public enum UsuarioRole {
	/**
	 * SU- RESERVADO
	 */
	SU,
	/**
	 * PAPEL DE COORDENADOR  
	 */
	COORDENADOR,
	/**
	 * HOMOLOGA PEDIDOS
	 */
	COLEGIADO,
	/**
	 * DA ENTRADA EM PEDIDOS DE DEFESA
	 */
	PROFESSOR,
	/**
	 * CADASTRA PROFESSORES, ALUNOS e TIRA RELATORIOSS
	 */
	SECRETARIO,
	/**
	 * ROLE DE PROPOSITOS GERAIS
	 */
	USUARIO;	
	
	public static Set<String> fetchSubRoles(UsuarioRole role) {
		Set<String> roles = new HashSet<String>();
		
		switch (role) {
		case SU:
		case COORDENADOR:
			for (UsuarioRole usuarioRole : asList()) {
				roles.add(usuarioRole.toString());
			}
			
			break;
		case COLEGIADO:
			roles.add(PROFESSOR.toString());
		default:
			roles.add(role.toString());
			roles.add(USUARIO.toString());
			break;
		}
		
		return roles;
	}

	public static final List<UsuarioRole> asList() {return Arrays.asList(values());}
	public int getOrdinal() {return ordinal();}
}
